{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1f5f79e4be0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.random.uniform(-3, 3, size=100)\n",
    "X = x.reshape(-1, 1)\n",
    "y = 0.5 * x**2 + x + 2 + np.random.normal(0,1,size=100)\n",
    "\n",
    "plt.scatter(X, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lin_reg = LinearRegression()\n",
    "lin_reg.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_predict = lin_reg.predict(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1f5f831f080>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X, y)\n",
    "plt.plot(X, y_predict, color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 解决方案, 添加一个特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100, 2)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X2 = np.hstack([X, X**2])\n",
    "X2.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "lin_reg2 = LinearRegression()\n",
    "lin_reg2.fit(X2, y)\n",
    "y_predict2 = lin_reg2.predict(X2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1f5f838f208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X, y)\n",
    "plt.plot(X, y_predict2, color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1f5f9622160>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X, y)\n",
    "plt.plot(np.sort(x), y_predict2[np.argsort(x)], color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.05332985, 0.50915319])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lin_reg2.coef_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# scikit-learn中的多项式回归和Pipeline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "x = np.random.uniform(-3, 3, size=100)\n",
    "X = x.reshape(-1, 1)\n",
    "y = 0.5 * x**2 + x + 2 + np.random.normal(0,1,size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import PolynomialFeatures"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100, 3)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly = PolynomialFeatures(degree=2)\n",
    "poly.fit(X)\n",
    "X3 = poly.transform(X)\n",
    "X3.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.        , -2.01828362,  4.07346879],\n",
       "       [ 1.        , -0.36218678,  0.13117927],\n",
       "       [ 1.        ,  1.24540814,  1.55104144],\n",
       "       [ 1.        , -2.6565265 ,  7.05713302],\n",
       "       [ 1.        ,  1.73255417,  3.00174395]])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X3[:5,:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "lin_reg3 = LinearRegression()\n",
    "lin_reg3.fit(X3, y)\n",
    "y_predict3 = lin_reg3.predict(X3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1f5f9a82e10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X, y)\n",
    "plt.plot(np.sort(x), y_predict3[np.argsort(x)], color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 关于 PolynomialFeatures"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2],\n",
       "       [ 3,  4],\n",
       "       [ 5,  6],\n",
       "       [ 7,  8],\n",
       "       [ 9, 10]])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = np.arange(1,11).reshape(-1,2)\n",
    "X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  1.,   1.,   2.,   1.,   2.,   4.],\n",
       "       [  1.,   3.,   4.,   9.,  12.,  16.],\n",
       "       [  1.,   5.,   6.,  25.,  30.,  36.],\n",
       "       [  1.,   7.,   8.,  49.,  56.,  64.],\n",
       "       [  1.,   9.,  10.,  81.,  90., 100.]])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# x1,x2  -> x1^2 + x2^2 + x1*x2\n",
    "poly = PolynomialFeatures(degree=2)\n",
    "poly.fit(X)\n",
    "X2 = poly.transform(X)\n",
    "X2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Pipeline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "x = np.random.uniform(-3, 3, size=100)\n",
    "X = x.reshape(-1, 1)\n",
    "y = 0.5 * x**2 + x + 2 + np.random.normal(0,1,size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "poly_reg = Pipeline([\n",
    "    ('poly', PolynomialFeatures(degree=2)),\n",
    "    ('std_scaler', StandardScaler()),\n",
    "    ('lin_reg', LinearRegression())\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "poly_reg.fit(X, y)\n",
    "y_predict = poly_reg.predict(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1f5f83391d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X, y)\n",
    "plt.plot(np.sort(x), y_predict[np.argsort(x)], color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
